Color digital cameras are becoming ubiquitous in the consumer marketplace, partly due to progressive price reductions. Color digital cameras typically employ a single optical sensor, either a Charge Coupled Device (CCD) sensor or a Complementary Metal Oxide Semiconductor (CMOS) sensor, to digitally capture a scene of interest. Both CCD and CMOS sensors are only sensitive to light intensity. Consequently, these sensors cannot discriminate between different colors. In order to achieve color discrimination, a color filtering technique is applied to separate light in terms of base colors, typically red, green and blue.
A common filtering technique utilizes a color-filter array (CFA), which is overlaid on a sensor array, to separate colors of impinging light in a Bayer pattern. The Bayer pattern is a periodic pattern with a period of two different color pixels in each dimension (vertical and horizontal). In the horizontal direction, a single period includes either a green pixel and a red pixel, or a blue pixel and a green pixel. In the vertical direction, a single period includes either a green pixel and a blue pixel, or a red pixel and a green pixel. Therefore, the number of green pixels is twice the number of red or blue pixels. The reason for the disparity in the number of green pixels is because the human eye is not equally sensitive to all three primary colors. Consequently, more green pixels are needed to create a color image of a scene that will be perceived as a “true color” image.
Due to the CFA, the image captured by the sensor is therefore a mosaiced image, also called “raw data” image, where each pixel only holds the value for either red, green or blue. The raw data image can then be demosaiced to create a color image by estimating the missing color values for each pixel of the image. These missing color values are estimated by using color information from surrounding pixels.
There are a number of conventional demosaicing methods to convert a raw data image into a color image. Three main common categories of demosaicing methods include interpolation-based methods, feature-based methods, and Bayesian methods. The interpolation-based demosaicing methods use simple interpolation formulas to interpolate the color planes separately. The interpolation-based demosaicing methods include bi-linear methods, band-limited interpolation methods using sinc functions, spline interpolation methods, and the like. The feature-based demosaicing methods examine local features of a given image at the pixel level, and then interpolate the image accordingly. The basic idea of the feature-based methods is to avoid interpolating across edges of features. The Bayesian methods attempt to find the most probable color image, given the data, by assuming some prior knowledge of the image structure.
After the raw data images have been demosaiced, the images may be resized for a particular application. As an example, the demosaiced images may be reduced to ensure that the images are properly transmitted through a communications channel having a predefined bandwidth for video conferencing. As another example, the demosaiced images may be reduced to provide thumbnail images of the captured images for the user to preview. There are a number of conventional methods to resize an image into a smaller image. One common method involves creating a smaller version of the original image where each pixel in the smaller image receives the color values of the closest pixel in the original image. Another common method involves low-pass filtering or interpolating the original image and then decimating the image at the appropriate rate to produce a smaller image. The low-pass filtering or interpolation reduces aliasing in the decimating step.
Although the conventional methods for separately demosaicing raw data images and resizing the demosaiced images work well to produce demosaiced and resized images, there is a need for a system and method for more efficiently demosaicing and resizing raw data images to produce the demosaiced and resized images.